﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace l1cs.server.utils
{
    class NumberUtil
    {
        /**
         * 少数を小数点第二位までの確率で上か下に丸めた整数を返す。
         * 例えば1.3は30%の確率で切り捨て、70%の確率で切り上げられる。
         * 
         * @param number - もとの少数
         * @return 丸められた整数
         */
        public static int randomRound( double number )
        {
            double percentage = ( number - Math.Floor( number ) ) * 100;

            if ( percentage == 0 )
            {
                return ( (int)number );
            }
            else
            {
                int r = new Random().Next( 100 );
                if ( r < percentage )
                {
                    return ( (int)number + 1 );
                }
                else
                {
                    return ( (int)number );
                }
            }
        }
    }
}
